home *** CD-ROM | disk | FTP | other *** search
- unit RunAppU;
-
- interface
-
- uses
- Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
- StdCtrls;
-
- type
- TForm1 = class(TForm)
- Edit1: TEdit;
- Edit2: TEdit;
- Label1: TLabel;
- Label2: TLabel;
- Button1: TButton;
- Button2: TButton;
- procedure Button1Click(Sender: TObject);
- procedure Button2Click(Sender: TObject);
- public
- procedure ThreadTerminate(Sender: TObject);
- end;
-
- var
- Form1: TForm1;
-
- implementation
-
- uses
- RunWaitU;
-
- {$R *.DFM}
-
- procedure TForm1.ThreadTerminate(Sender: TObject);
- begin
- Button1.Enabled := True
- end;
-
- procedure TForm1.Button1Click(Sender: TObject);
- begin
- { This is the one that uses a thread. The button }
- { normally gets re-enabled in the thread's OnTerminate }
- { event handler. If there's a problem, we'll do it here }
- Button1.Enabled := False;
- try
- WaitForApp(ExecApp(Edit1.Text, Edit2.Text), ThreadTerminate);
- except
- Button1.Enabled := True;
- raise
- end
- end;
-
- procedure TForm1.Button2Click(Sender: TObject);
- begin
- { This one doesn't use a thread, so we'll }
- { make sure we re-enable the button here }
- Button2.Enabled := False;
- try
- WaitForApp2(ExecApp2(Edit1.Text, Edit2.Text));
- finally
- Button2.Enabled := True
- end
- end;
-
- end.
-